home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / cli / cli2.arc / MACROS.CLI < prev    next >
Text File  |  1987-11-09  |  13KB  |  565 lines

  1.         TTL     'MACROS.CLI'
  2.  
  3.         NOLIST
  4.  
  5. ;
  6. ; A_line Macros
  7. ;
  8.  
  9. aline_init MACRO
  10.         DC.W    $A000              ;aline_init
  11.         ENDM
  12.  
  13. show_mouse MACRO
  14.         DC.W    $A009              ;show_mouse
  15.         ENDM
  16.  
  17. hide_mouse MACRO
  18.         DC.W    $A00A              ;hide_mouse
  19.         ENDM
  20.  
  21. ;
  22. ; Aline Array Equates
  23. ;
  24.  
  25. CONTRL    EQU       4         ;contrl array pointer
  26. INTIN     EQU       8         ;intin array pointer
  27.  
  28.  
  29. ;
  30. ; AES Application functions
  31. ;
  32.  
  33. ;
  34. ; initialize application
  35. ;
  36. ;         appl_init
  37. ;
  38. appl_init MACRO
  39.           CLR.L     ap1resv
  40.           CLR.L     ap2resv
  41.           CLR.L     ap3resv
  42.           CLR.L     ap4resv
  43.           MOVE.W    #10,opcode          
  44.           CLR.W     sintin
  45.           MOVE.W    #1,sintout
  46.           CLR.W     saddrin
  47.           CLR.W     saddrout
  48.           MOVE.L    #aespb,D1
  49.           MOVE.W    #$C8,D0
  50.           TRAP      #2
  51.           ENDM
  52.  
  53. ;
  54. ; add a desktop accessory to the list of available accessories
  55. ;
  56. ;         menu_register  accessory_id, name_address
  57. ;
  58. menu_register  MACRO
  59.           MOVE.W    #35,contrl
  60.           MOVE.W    #1,contrl+2
  61.           MOVE.W    #1,contrl+4
  62.           MOVE.W    #1,contrl+6
  63.           CLR.W     contrl+8
  64.           MOVE.W    \1,intin
  65.           MOVE.L    \2,addrin
  66.           MOVE.L    #aespb,D1
  67.           MOVE.W    #$C8,D0
  68.           TRAP      #2
  69.           ENDM
  70.  
  71. ;
  72. ; wait until a message is present in the message pipe
  73. ;
  74. ;         evnt_mesag  buffer_address
  75. ;
  76. evnt_mesag  MACRO
  77.           MOVE.W    #23,contrl
  78.           CLR.W     contrl+2
  79.           MOVE.W    #1,contrl+4
  80.           MOVE.W    #1,contrl+6
  81.           CLR.W     contrl+8
  82.           MOVE.L    \1,addrin
  83.           MOVE.L    #aespb,D1
  84.           MOVE.W    #$C8,D0
  85.           TRAP      #2
  86.           ENDM
  87.  
  88. ;
  89. ; display a warning message
  90. ;
  91. ;         form_alert  default_button, string_address
  92. ;
  93. form_alert  MACRO
  94.           MOVE.W    #52,contrl          
  95.           MOVE.W    #1,contrl+2
  96.           MOVE.W    #1,contrl+4
  97.           MOVE.W    #1,contrl+6
  98.           CLR.W     contrl+8
  99.           MOVE.W    \1,intin
  100.           MOVE.L    \2,addrin          
  101.           MOVE.L    #aespb,D1
  102.           MOVE.W    #$C8,D0
  103.           TRAP      #2
  104.           ENDM
  105.  
  106. ;
  107. ; GEMDOS functions
  108. ;
  109.  
  110. ;
  111. ; get a character from the keyboard.  character is returned in D0.L
  112. ;
  113. ;        conin
  114. ;
  115. conin    MACRO
  116.          MOVE.W   #$01,-(SP)
  117.          TRAP     #1                ;GEMDOS
  118.          ADDQ.L   #2,SP
  119.          ENDM
  120.  
  121. ;
  122. ; output a character to the screen
  123. ;
  124. ;        conout   character
  125. ;
  126. conout   MACRO
  127.          MOVE.W   \1,-(SP)
  128.          MOVE.W   #$02,-(SP)
  129.          TRAP     #1                ;GEMDOS
  130.          ADDQ.L   #4,SP
  131.          ENDM
  132.  
  133. ;
  134. ; read a character from the keyboard, no screen echo. char is in D0.L
  135. ;
  136. ;        coninwoe
  137. ;
  138. coninwoe MACRO
  139.          MOVE.W   #$07,-(SP)
  140.          TRAP     #1                ;GEMDOS
  141.          ADDQ.L   #2,SP
  142.          ENDM
  143.  
  144. ;
  145. ; check keyboard status. D0.W = 0 ⇨ no keystrokes are buffered
  146. ;
  147. ;        constat
  148. ;
  149. constat  MACRO
  150.          MOVE.W   #$0B,-(SP)
  151.          TRAP     #1                ;GEMDOS
  152.          ADDQ.L   #2,SP
  153.          ENDM
  154.  
  155. ;
  156. ; set the default drive. D0.W contains old default drive number (0 or 1)
  157. ;
  158. ;        setdrv   drive_number
  159. ;
  160. setdrv   MACRO
  161.          MOVE.W   \1,-(SP)
  162.          MOVE.W   #$0E,-(SP)
  163.          TRAP     #1                ;GEMDOS
  164.          ADDQ.L   #4,SP
  165.          ENDM
  166.  
  167. ;
  168. ; get the current default drive number. D0.W returns drive number (0 or 1)
  169. ;
  170. ;        getdrv
  171. ;
  172. getdrv   MACRO
  173.          MOVE.W   #$19,-(SP)        ;get default drive
  174.          TRAP     #1                ;GEMDOS
  175.          ADDQ.L   #2,SP
  176.          ENDM
  177.  
  178. ;
  179. ; get the system date. D0.W = YYYYYYYMMMMDDDDD
  180. ;
  181. ;        getdate
  182. ;
  183. getdate  MACRO
  184.          MOVE.W   #$2A,-(SP)
  185.          TRAP     #1                ;GEMDOS
  186.          ADDQ.L   #2,SP
  187.          ENDM
  188.  
  189. ;
  190. ; get the system time. D0.W = HHHHHMMMMMMSSSSS
  191. ;
  192. ;        gettime
  193. ;
  194. gettime  MACRO
  195.          MOVE.W   #$2C,-(SP)
  196.          TRAP     #1                ;GEMDOS
  197.          ADDQ.L   #2,SP
  198.          ENDM
  199.  
  200. ;
  201. ; get the disk transfer address. D0.L = address of the dta buffer
  202. ;
  203. ;        getdta
  204. ;
  205. getdta   MACRO
  206.          MOVE.W   #$2F,-(SP)
  207.          TRAP     #1                ;GEMDOS
  208.          ADDQ.L   #2,SP
  209.          ENDM
  210.  
  211. ;
  212. ; get the free space on a disk
  213. ;
  214. ;        freespace buffer_address, drive_code(0-2)
  215. ;
  216. freespace MACRO
  217.          MOVE.W   \2,-(SP)
  218.          MOVE.L   \1,-(SP)
  219.          MOVE.W   #$36,-(SP)
  220.          TRAP     #1                ;GEMDOS
  221.          ADDQ.L   #8,SP
  222.          ENDM
  223.  
  224. ;
  225. ; create a directory or folder. D0.L < 0 ⇨ error occurred
  226. ;
  227. ;        mkdir    path_address
  228. ;
  229. mkdir    MACRO
  230.          MOVE.L   \1,-(SP)
  231.          MOVE.W   #$39,-(SP)
  232.          TRAP     #1                ;GEMDOS
  233.          ADDQ.L   #6,SP
  234.          ENDM
  235.  
  236. ;
  237. ; delete a directory or folder. D0.L < 0 ⇨ error occurred
  238. ;
  239. ;        rmdir    path_address
  240. ;
  241. rmdir    MACRO
  242.          MOVE.L   \1,-(SP)
  243.          MOVE.W   #$3A,-(SP)
  244.          TRAP     #1                ;GEMDOS
  245.          ADDQ.L   #6,SP
  246.          ENDM
  247.  
  248. ;
  249. ; set the default path. D0.L < 0 ⇨ error occurred
  250. ;
  251. ;        chdir    path_address
  252. ;
  253. chdir    MACRO
  254.          MOVE.L   \1,-(SP)
  255.          MOVE.W   #$3B,-(SP)
  256.          TRAP     #1                ;GEMDOS
  257.          ADDQ.L   #6,SP
  258.          ENDM
  259.  
  260. ;
  261. ; create and open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
  262. ;
  263. ;        create   path_address, file_attribute
  264. ;
  265. create   MACRO
  266.          MOVE.W   \2,-(SP)
  267.          MOVE.L   \1,-(SP)
  268.          MOVE.W   #$3C,-(SP)
  269.          TRAP     #1                ;GEMDOS
  270.          ADDQ.L   #8,SP
  271.          ENDM
  272.  
  273. ;
  274. ; open file. D0.L < 0 ⇨ error occurred, else D0.L = handle
  275. ;
  276. ;        open     path_address, mode_word
  277. ;
  278. open     MACRO
  279.          MOVE.W   \2,-(SP)
  280.          MOVE.L   \1,-(SP)
  281.          MOVE.W   #$3D,-(SP)
  282.          TRAP     #1                ;GEMDOS
  283.          ADDQ.L   #8,SP
  284.          ENDM
  285.  
  286. ;
  287. ; read from file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes read
  288. ;
  289. ;        read     handle, #_bytes, buffer_address
  290. ;
  291. read     MACRO
  292.          MOVE.L   \3,-(SP)
  293.          MOVE.L   \2,-(SP)
  294.          MOVE.W   \1,-(SP)
  295.          MOVE.W   #$3F,-(SP)
  296.          TRAP     #1                ;GEMDOS
  297.          LEA      12(SP),SP
  298.          ENDM
  299.  
  300. ;
  301. ; write to file. D0.L < 0 ⇨ error occurred, else D0.L = # of bytes written
  302. ;
  303. ;        write    handle, #_bytes, buffer_address
  304. ;
  305. write    MACRO
  306.          MOVE.L   \3,-(SP)
  307.          MOVE.L   \2,-(SP)
  308.          MOVE.W   \1,-(SP)
  309.          MOVE.W   #$40,-(SP)
  310.          TRAP     #1                ;GEMDOS
  311.          LEA      12(SP),SP
  312.          ENDM
  313.  
  314. ;
  315. ; delete file. D0.L < 0 ⇨ error occurred, else D0.L = 0
  316. ;
  317. ;        unlink   path_address
  318. ;
  319. unlink   MACRO
  320.          MOVE.L   \1,-(SP)
  321.          MOVE.W   #$41,-(SP)
  322.          TRAP     #1                ;GEMDOS
  323.          ADDQ.L   #6,SP
  324.          ENDM
  325.  
  326. ;
  327. ; change file attributes. D0.L < 0 ⇨ error, else D0.W = file attributes
  328. ;
  329. ;        chmod     path_address, get\set_code, attribute_word
  330. ;
  331. chmod    MACRO
  332.          MOVE.W   \3,-(SP)
  333.          MOVE.W   \2,-(SP)
  334.          MOVE.L   \1,-(SP)
  335.          MOVE.W   #$43,-(SP)
  336.          TRAP     #1                ;GEMDOS
  337.          LEA      10(SP),SP
  338.          ENDM
  339.  
  340. ;
  341. ; get the current path. D0.L < 0 ⇨ error occurred, else D0.L = 0
  342. ;
  343. ;        getdir   path_buffer, drive_code(0-2)
  344. getdir   MACRO
  345.          MOVE.W   \2,-(SP)
  346.          MOVE.L   \1,-(SP)
  347.          MOVE.W   #$47,-(SP)
  348.          TRAP     #1                ;GEMDOS
  349.          ADDQ.L   #8,SP
  350.          ENDM
  351.  
  352. ;
  353. ; allocate memory. D0.L < 0 ⇨ error occurred, else D0.L = memory address
  354. ;    if #_bytes = -1, then D0.L = total # of bytes available
  355. ;
  356. ;        malloc   #_bytes
  357. malloc   MACRO
  358.          MOVE.L   \1,-(SP)
  359.          MOVE.W   #$48,-(SP)
  360.          TRAP     #1                ;GEMDOS
  361.          ADDQ.L   #6,SP
  362.          ENDM
  363.  
  364. ;
  365. ; deallocate memory. D0.L < 0 ⇨ error occurred, else D0.L = 0
  366. ;
  367. ;        mfree    memory_address
  368. ;
  369. mfree    MACRO
  370.